#include <jni.h>
#include "log.h"
#include "openssl_impl.h"
/* Header for class com_parsifal_openssldemo_SecurityUtil */

#ifndef _Included_com_parsifal_openssldemo_SecurityUtil
#define _Included_com_parsifal_openssldemo_SecurityUtil
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     com_parsifal_openssldemo_SecurityUtil
 * Method:    generateKey
 * Signature: ()V
 */
JNIEXPORT void JNICALL Java_com_parsifal_openssldemo_SecurityUtil_generateKey
        (JNIEnv *, jclass);

/*
 * Class:     com_parsifal_openssldemo_SecurityUtil
 * Method:    releaseKey
 * Signature: ()V
 */
JNIEXPORT void JNICALL Java_com_parsifal_openssldemo_SecurityUtil_releaseKey
        (JNIEnv *, jclass);

/*
 * Class:     com_parsifal_openssldemo_SecurityUtil
 * Method:    rsaEncrypt
 * Signature: ([B)[B
 */
JNIEXPORT jbyteArray JNICALL Java_com_parsifal_openssldemo_SecurityUtil_rsaEncrypt
        (JNIEnv *, jclass, jbyteArray);

/*
 * Class:     com_parsifal_openssldemo_SecurityUtil
 * Method:    rsaDecrypt
 * Signature: ([B)[B
 */
JNIEXPORT jbyteArray JNICALL Java_com_parsifal_openssldemo_SecurityUtil_rsaDecrypt
        (JNIEnv *, jclass, jbyteArray);

/*
 * Class:     com_parsifal_openssldemo_SecurityUtil
 * Method:    getPublicKey
 * Signature: ()Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_com_parsifal_openssldemo_SecurityUtil_getPublicKey
        (JNIEnv *, jclass);

/*
 * Class:     com_parsifal_openssldemo_SecurityUtil
 * Method:    rsaEncryptByExtPublicKey
 * Signature: ([BLjava/lang/String;)[B
 */
JNIEXPORT jbyteArray JNICALL Java_com_parsifal_openssldemo_SecurityUtil_rsaEncryptByExtPublicKey
        (JNIEnv *, jclass, jbyteArray, jstring);
#ifdef __cplusplus
}
#endif
#endif
